The proliferation of computers and the advent of the Internet, and in particular, the maturing of the World Wide Web (“web”), has made the exchange of multimedia data, such as text, audio, video, etc., commonplace and ever increasing. The multimedia data is typically stored in one or more files on a server, and subsequently download to clients over a network connection.
The multimedia data is distributed as either “streaming” or “non-streaming” data. With streaming multimedia data, the data can be delivered or used in real-time as it is being received, and thus, avoids the delay associated with downloading the entire file and then playing or using the contents. Conversely, with non-streaming multimedia data, the entire file has to be received first before the data can be used.
One drawback to downloading non-streaming files over a network, such as the Internet, is the relatively limited bandwidth that is available to an application program. Because the limited bandwidth directly affects and limits the amount of information that may be transmitted from a server to a client in a given period of time, it may take a very long period of time to completely download a non-streaming multimedia file. Thus, a user at a client computer that is downloading the non-streaming multimedia data over the Internet may not be able to experience the multi-media content for a long period of time. For example, a collaboration application may provide presenters the ability to share documents or other multimedia data with other participants in a collaboration session. When a presenter chooses to share a document or other data, the data is first placed on a central server as a non-streaming file, and subsequently downloaded to the clients—i.e., the participants' computers—in order to be shared. Depending on the size of the file, the download may take many seconds or even minutes. Because the collaboration programs on the clients that are downloading the non-streaming files are not able to use the data in real-time, the meeting participants will have no sharing experience until the download completes.
It would be desirable to have a technique that allows users at client machines to experience data stored on a server machine without requiring the entire data file to be first downloaded to the client machine.